package com.jaay.service;

import com.jaay.common.CommonResult;

import java.io.Serializable;
import java.util.List;
import java.util.Optional;

public interface IBaseService<T,ID extends Serializable>{

    /**
     * 根据ID查询
     *
     * @param id 编号
     * @return 返回查询对象
     */
    Optional<T> queryById(ID id);

    /**
     * 多列查询
     *
     * @return 返回查询列表
     */
    public CommonResult<List<T>> queryAll();

    /**
     * 新增
     *
     * @param t 新增对象
     */
    void add(T t);

    /**
     * 批量插入
     *
     * @param ts 批量列表
     */
    CommonResult<String> batchAdd(List<T> ts);

    /**
     * 更新
     *
     * @param t 更新对象
     */
    void update(T t);

    /**
     * 根据ID删除
     *
     * @param id id编号
     */
    void delete(ID id);
}
